// export const state = () => {
//     return {

//     }
// }

import {myrequest} from '@/utils/http'

export const state = () => ({
    userInfo: {}
})

// getter 是在 vuex 起到 计算属性作用的一些函数
// 如果你想对 state 进行处理后再输出就可以用 getter 进行处理
// 加入我储存的时候没办法, 数据统统都放到了 userInfo 里面
// 但是我只想要 里面的用户名

export const getters = {
    username(state) {
        if (state.userInfo.user) {
            return state.userInfo.user.nickname
        }else {
            return '等待数据'
        }
    }
}


export const mutations = {
    setUserInfo(state, data) {
        state.userInfo = data
        // this.$axios({
        //     method: 'post',
        //     url: '/accounts/login',
        //     data
        // }).then(res => {
        //     console.log(res.data);
        //     state.userInfo = res.data
        // })
    }
}

// 如果我们需要在 vuex 里面封装异步操作, 就要经过 actions 
// 调用异步操作以后才能用 mutations 来改变数据

// actions 本身并不直接修改 state
// 而是调用 mutations 来做修改

export const actions = {
    async login(store, data) {
        debugger
        const res = await myrequest('login', data)
        if (res) {
            store.commit('setUserInfo', res.data)
        }
      
    }
}
